/*-------------------------------------------------------------------------------------
* Description	: 单片机模板--时间片轮询架构
* Writer	    : 知乎向导
* Version       : V1.0
* other			: https://www.zhihu.com/people/pharosstar
--------------------------------------------------------------------------------------*/
#include "main.h"

//全局变量

void main()
{
#ifdef dbg
    rt=1;
#endif
    init();

    while(1)
    {
#ifdef dbg
        rt=20;
#endif
        TaskProcess();
    }
}
/**************************************************************************************
* FunctionName   : init()
* Description    : 初始化函数
* EntryParameter : None
* ReturnValue    : None
**************************************************************************************/
void init(void)
{
#ifdef dbg
    rt=10;
#endif
    EA=0; 																// 关总中断

    TMOD |= 0x01;  												// 定时/计数器工作在方式 1；
    TH0 = (65536 - (24/12) * 1000)/256;   // 65536 Timer0 M1=0,M0=1 工作在模式1，16位定时/计数器，2^16=65536  24Mhz晶振 1000um = 1ms
    TL0 = (65536 - (24/12) * 1000)%256;
    ET0 = 1;  														// 允许定时/计数器0 中断
    TR0 = 1;  														// 启动定时/计数器0 中断

    EA=1; 																// 开总中断
}
/**************************************************************************************
* FunctionName   : Timer0()
* Description    : 定时器函数
* EntryParameter : None
* ReturnValue    : None
**************************************************************************************/
void Timer0() interrupt 1
{
#ifdef dbg
    rt=100;
#endif
	
    TaskRemarks();
}

